package cn.wolfcode.luowowo.member.mapper;

import cn.wolfcode.luowowo.member.domain.UserInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserInfoMapper {

    /**
     * 通过id查询对象
     * @param id 用户id
     * @return 用户对象
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 保存用户对象
     * @param record 用户对象
     * @return 影响行数
     */

    int insert(UserInfo record);

    /**
     * 使用id 查询单个对象
     * @param id 用户id
     * @return
     */

    UserInfo selectByPrimaryKey(Long id);

    /**
     * 查询用户列表
     * @return
     */
    List<UserInfo> selectAll();

    /**
     * 用户更新操作 sql语句使用id锁定特定行
     * @param record 用户对象
     * @return
     */

    int updateByPrimaryKey(UserInfo record);

    /**
     * 查询是否有该用户
     * @param phone  用户手机号
     * @return 返回查询到的用户个数
     */

    int checkPhoneByphone(String phone);

    /**
     * 使用手机号和密码校验信息
     * @param username 用户手机号
     * @param password 用户密码
     * @return 用户信息.除开密码
     */

    UserInfo userLoginCheckUsernameAndPawssword(@Param("username") String username, @Param("password") String password);


    /**
     * 修改头像
     * @param userInfo
     */
    void updateheadImg(UserInfo userInfo);

    /**
     * 修改密码
     * @param userInfo
     */
    void updatePasswordOrPhoneById(UserInfo userInfo);

    /**
     * 黑名单的用户
     * @param nickname
     * @return
     */
    UserInfo selectBadUser(String nickname);

    /**
     * 加钱
     * @param coin
     * @param uid
     */
    void addCoin(int coin, Long uid);

    /**
     * 减钱
     * @param coin
     * @param uid
     */
    void subCoin(int coin, Long uid);


    /**
     * 修改用户状态位黑名单
     * @param userInfo
     */
   /* void updateState(UserInfo userInfo);*/
}